#coding: utf-8
'''

将java定义的类中的变量分解
[private, type, var]

'''

import re


def parse(mememberStr) :
    #print(mememberStr)
    arrays = mememberStr.split("\n")
    results = []
    for line in arrays :
        if is_member(line):
            #print(line.strip())
            results.append(parse_line(line))

    return results


# 是否属于我们要解析的数据变量
def is_member(line) :
    """

    :rtype: Boolean
    """
    str = line.strip()
    #print(str)
    matched = re.match('[private|protected].*;.*', str)
    if matched ==  None:
        return False
    else :
        return True


def parse_line(line):
    str = line.strip()
    #print(str)
    endP = line.find(";")
    #print(endP)
    str = str[:endP]
    #print(str)
    matched = re.search('[private|protected].*;', str)
    str2 = matched.group()
    arrayStr = str2[:-1].replace('  ',' ').split(' ')
    return arrayStr

if __name__ == '__main__':
    str = """
    private String  devid;   //  String  device id
    private long hostid;    //  Long    绑定的宿主, 由于设备更换频繁, 需要这个
    private Date time;      //  Date    gps的时间 (精确到s)
    private double lat;     //  Double  纬度
    private double lon;     //  Double  经度
    private long alt;       //  Long    高度 (米)
    private float speed;    // Float   速度 (km/h)
    private float ang;      // Float   角度
    private int sat;        // int     星的数目
    private int acc;        // int     acc是否开启 (1 - 已经点火, 0 - 其他)
    private float vol;      // float   电压 (V)
    private int warn;       // int     报警类型 (0 - 无, 其他, 待定义)
    private Date rectm;     // Date    保存数据的时间

    """

    results = parse(str)
    print(results)
